home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1999 January / PC Plus Super CD No55a (PCP-147A-1-99) (Disc 1) (1998).iso / linux / developers / visualtcl / windows / vtcl / demo / combo.tcl next >
Encoding:
Text File  |  1997-09-02  |  6.1 KB  |  191 lines

  1. #############################################################################
  2. # Visual Tcl v1.11 Project
  3. #
  4.  
  5. #################################
  6. # GLOBAL VARIABLES
  7. #
  8. global x_accel; 
  9. global x_label; 
  10. global widget; 
  11.  
  12. #################################
  13. # USER DEFINED PROCEDURES
  14. #
  15. proc init {argc argv} {
  16.  
  17. }
  18.  
  19. init $argc $argv
  20.  
  21.  
  22. proc main {argc argv} {
  23.  
  24. }
  25.  
  26. proc Window {args} {
  27. global vTcl
  28.     set cmd [lindex $args 0]
  29.     set name [lindex $args 1]
  30.     set newname [lindex $args 2]
  31.     set rest [lrange $args 3 end]
  32.     if {$name == "" || $cmd == ""} {return}
  33.     if {$newname == ""} {
  34.         set newname $name
  35.     }
  36.     set exists [winfo exists $newname]
  37.     switch $cmd {
  38.         show {
  39.             if {$exists == "1" && $name != "."} {wm deiconify $name; return}
  40.             if {[info procs vTclWindow(pre)$name] != ""} {
  41.                 eval "vTclWindow(pre)$name $newname $rest"
  42.             }
  43.             if {[info procs vTclWindow$name] != ""} {
  44.                 eval "vTclWindow$name $newname $rest"
  45.             }
  46.             if {[info procs vTclWindow(post)$name] != ""} {
  47.                 eval "vTclWindow(post)$name $newname $rest"
  48.             }
  49.         }
  50.         hide    { if $exists {wm withdraw $newname; return} }
  51.         iconify { if $exists {wm iconify $newname; return} }
  52.         destroy { if $exists {destroy $newname; return} }
  53.     }
  54. }
  55.  
  56. #################################
  57. # VTCL GENERATED GUI PROCEDURES
  58. #
  59.  
  60. proc vTclWindow. {base} {
  61.     if {$base == ""} {
  62.         set base .
  63.     }
  64.     ###################
  65.     # CREATING WIDGETS
  66.     ###################
  67.     wm focusmodel $base passive
  68.     wm geometry $base 1x1+0+0
  69.     wm maxsize $base 1137 870
  70.     wm minsize $base 96 1
  71.     wm overrideredirect $base 0
  72.     wm resizable $base 1 1
  73.     wm withdraw $base
  74.     wm title $base "Combo Demo Project"
  75.     ###################
  76.     # SETTING GEOMETRY
  77.     ###################
  78. }
  79.  
  80. proc vTclWindow.top22 {base} {
  81.     if {$base == ""} {
  82.         set base .top22
  83.     }
  84.     if {[winfo exists $base]} {
  85.         wm deiconify $base; return
  86.     }
  87.     ###################
  88.     # CREATING WIDGETS
  89.     ###################
  90.     toplevel $base -class Toplevel
  91.     wm focusmodel $base passive
  92.     wm geometry $base 237x202+183+155
  93.     wm maxsize $base 1137 870
  94.     wm minsize $base 96 1
  95.     wm overrideredirect $base 0
  96.     wm resizable $base 1 1
  97.     wm deiconify $base
  98.     wm title $base "Geometry Combo"
  99.     frame $base.fra23 \
  100.         -background #a0d9d9 -borderwidth 1 -height 108 -relief sunken \
  101.         -width 93 
  102.     button $base.fra23.01 \
  103.         -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*-* \
  104.         -highlightthickness 0 -padx 9 -pady 3 -text We 
  105.     button $base.fra23.02 \
  106.         -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*-* \
  107.         -highlightthickness 0 -padx 9 -pady 3 -text are 
  108.     button $base.fra23.03 \
  109.         -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*-* \
  110.         -highlightthickness 0 -padx 9 -pady 3 -text placed 
  111.     frame $base.fra24 \
  112.         -background #d9a0d9 -borderwidth 1 -height 30 -relief sunken \
  113.         -width 30 
  114.     button $base.fra24.01 \
  115.         -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*-* \
  116.         -highlightthickness 0 -padx 9 -pady 3 -text We're 
  117.     button $base.fra24.02 \
  118.         -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*-* \
  119.         -highlightthickness 0 -padx 9 -pady 3 -text packed 
  120.     frame $base.fra25 \
  121.         -background #d9d9a0 -borderwidth 1 -relief sunken -width 30 
  122.     button $base.fra25.01 \
  123.         -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*-* \
  124.         -highlightthickness 0 -padx 9 -pady 3 -text And -width 5 
  125.     button $base.fra25.02 \
  126.         -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*-* \
  127.         -highlightthickness 0 -padx 9 -pady 3 -text a -width 5 
  128.     button $base.fra25.03 \
  129.         -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*-* \
  130.         -highlightthickness 0 -padx 9 -pady 3 -text grid -width 5 
  131.     button $base.fra25.04 \
  132.         -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*-* \
  133.         -highlightthickness 0 -padx 9 -pady 3 -text this -width 5 
  134.     button $base.fra25.05 \
  135.         -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*-* \
  136.         -highlightthickness 0 -padx 9 -pady 3 -text is -width 5 
  137.     button $base.fra25.06 \
  138.         -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*-* \
  139.         -highlightthickness 0 -padx 9 -pady 3 -text layout -width 5 
  140.     ###################
  141.     # SETTING GEOMETRY
  142.     ###################
  143.     grid columnconf $base 0 -weight 1
  144.     grid columnconf $base 1 -weight 1
  145.     grid rowconf $base 1 -weight 1
  146.     grid $base.fra23 \
  147.         -in .top22 -column 0 -row 0 -columnspan 1 -rowspan 1 -padx 5 -pady 5 \
  148.         -sticky nesw 
  149.     place $base.fra23.01 \
  150.         -x 10 -y 10 -anchor nw -bordermode ignore 
  151.     place $base.fra23.02 \
  152.         -x 50 -y 40 -width 55 -height 24 -anchor nw -bordermode ignore 
  153.     place $base.fra23.03 \
  154.         -x 20 -y 70 -anchor nw -bordermode ignore 
  155.     grid $base.fra24 \
  156.         -in .top22 -column 1 -row 0 -columnspan 1 -rowspan 1 -padx 5 -pady 5 \
  157.         -sticky nesw 
  158.     pack $base.fra24.01 \
  159.         -in .top22.fra24 -anchor center -expand 1 -fill both -padx 2 -pady 2 \
  160.         -side top 
  161.     pack $base.fra24.02 \
  162.         -in .top22.fra24 -anchor center -expand 0 -fill x -padx 2 -pady 2 \
  163.         -side top 
  164.     grid $base.fra25 \
  165.         -in .top22 -column 0 -row 1 -columnspan 2 -rowspan 1 -padx 5 -pady 5 \
  166.         -sticky nesw 
  167.     grid $base.fra25.01 \
  168.         -in .top22.fra25 -column 0 -row 0 -columnspan 1 -rowspan 1 -padx 2 \
  169.         -pady 2 
  170.     grid $base.fra25.02 \
  171.         -in .top22.fra25 -column 0 -row 1 -columnspan 1 -rowspan 1 -padx 2 \
  172.         -pady 2 
  173.     grid $base.fra25.03 \
  174.         -in .top22.fra25 -column 1 -row 1 -columnspan 1 -rowspan 1 -padx 2 \
  175.         -pady 2 
  176.     grid $base.fra25.04 \
  177.         -in .top22.fra25 -column 1 -row 0 -columnspan 1 -rowspan 1 -padx 2 \
  178.         -pady 2 
  179.     grid $base.fra25.05 \
  180.         -in .top22.fra25 -column 2 -row 0 -columnspan 1 -rowspan 1 -padx 2 \
  181.         -pady 2 
  182.     grid $base.fra25.06 \
  183.         -in .top22.fra25 -column 2 -row 1 -columnspan 1 -rowspan 1 -padx 2 \
  184.         -pady 2 
  185. }
  186.  
  187. Window show .
  188. Window show .top22
  189.  
  190. main $argc $argv
  191.